/**
* @Title: BaseAction.java   
* @Copyright 2010 -2013 CreativeWise
* @Package com.util   
* @Description:  工具类
* @author wangxinmin    
* @date 2013-12-26 上午11:05:57   
* @version V1.0 
*/
package com.core.base;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext;

import com.cwises.entity.system.user.UserInfoManager;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.util.Global;

/**
 * 
* @ClassName: BaseAction
* @Description: action 基类
* @author wangxinmin
* @date 2014年5月30日 上午10:34:18
*
 */
public abstract class BaseAction extends ActionSupport	implements Action
	
{

	public BaseAction()
	{
	}
	/**
	 * 
	* @Title: getRequest   
	* @Description:获取ServletActionContext.getRequest()
	* @return
	* @return HttpServletRequest        
	* @author wangxinmin
	* @date 2014年6月10日 上午11:36:59 
	*
	 */
	protected HttpServletRequest getRequest()
	{
		return ServletActionContext.getRequest();
	}
	/**
	 * 
	* @Title: getResponse   
	* @Description:获取ServletActionContext.getResponse()
	* @return
	* @return HttpServletResponse        
	* @author wangxinmin
	* @date 2014年6月10日 上午11:37:19 
	*
	 */
	protected HttpServletResponse getResponse()
	{
		return ServletActionContext.getResponse();
	}
	/**
	 * 
	* @Title: getSession   
	* @Description:获取ActionContext.getContext().getSession()
	* @return
	* @return Map        
	* @author wangxinmin
	* @date 2014年6月10日 上午11:37:31 
	*
	 */
	protected Map getSession()
	{
		return ActionContext.getContext().getSession();
	}
	/**
	 * 
	* @Title: getHttpSession   
	* @Description:获取HttpSession
	* @param flag	除非我们确认session一定存在或者sesson不存在时明确有创建session的需要，否则 尽量使用false
	* @return
	* @return HttpSession        
	* @author wangxinmin
	* @date 2014年6月10日 上午11:37:45 
	*
	 */
	protected HttpSession getHttpSession(boolean flag)
	{
		return getRequest().getSession(flag);
	}
	/**
	 * 
	* @Title: getHttpSession   
	* @Description:获取HttpSession	sesson不存在时不创建session
	* @return
	* @return HttpSession        
	* @author wangxinmin
	* @date 2014年6月10日 上午11:38:37 
	*
	 */
	protected HttpSession getHttpSession()
	{
		return getRequest().getSession(false);
	}
	/**
	 * 
	* @Title: getRequestObject   
	* @Description:
	* @param request
	* @return
	* @return Map        
	* @author wangxinmin
	* @date 2014年6月10日 上午11:39:04 
	*
	 */
	protected Map getRequestObject(HttpServletRequest request)
	{
		return ServletTools.getRequestObject(getRequest());
	}
	protected int getNowPage()
	{
		return ServletTools.getNowPage(getRequest());
	}
	protected int getPageSize(int defaultValue)
	{
		return ServletTools.getPageSize(getRequest(), defaultValue);
	}
	/**
	 * 
	* @Title: getParameter   
	* @Description:getParameter
	* @param name 参数名称
	* @param defaultValue	如果为空，返回默认值
	* @return String        
	* @author wangxinmin
	* @date 2014年6月10日 上午11:39:25 
	*
	 */
	protected String getParameter(String name, String defaultValue)
	{
		return ServletTools.getParameter(name, getRequest(), defaultValue);
	}
	/**
	 * 
	* @Title: getParameterInt   
	* @Description:
	* @param name 参数名称
	* @param defaultValue	如果为空，返回默认值
	* @return int        
	* @author wangxinmin
	* @date 2014年6月10日 上午11:39:55 
	*
	 */
	protected int getParameterInt(String name, String defaultValue)
	{
		return ServletTools.getParameterInt(name, getRequest(), defaultValue);
	}
	/**
	 * 
	* @Title: getParameterValues   
	* @Description:
	* @param name 参数名称
	* @return String[]        
	* @author wangxinmin
	* @date 2014年6月10日 上午11:40:19 
	*
	 */
	protected String[] getParameterValues(String name)
	{
		return ServletTools.getParameterValues(name, getRequest());
	}
	/**
	 * 
	* @Title: getParameter   
	* @Description:getParameter 比较常用的方法
	* @param name
	* @return String        
	* @author wangxinmin
	* @date 2014年6月10日 上午11:40:33 
	*
	 */
	protected String getParameter(String name)
	{
		return ServletTools.getParameter(name, getRequest());
	}
	/**
	 * 
	* @Title: getAttribute   
	* @Description:
	* @param name
	* @return
	* @return Object        
	* @author wangxinmin
	* @date 2014年6月10日 上午11:41:01 
	*
	 */
	protected Object getAttribute(String name)
	{
		return ServletTools.getAttribute(name, getRequest());
	}
	/**
	 * 
	* @Title: setAttribute   
	* @Description:
	* @param name
	* @param obj
	* @return void        
	* @author wangxinmin
	* @date 2014年6月10日 上午11:41:09 
	*
	 */
	protected void setAttribute(String name, Object obj)
	{
		getRequest().setAttribute(name, obj);
	}
	/**
	 * 
	* @Title: getSession   
	* @Description:
	* @param flag
	* @return
	* @return HttpSession        
	* @author wangxinmin
	* @date 2014年6月10日 上午11:41:12 
	*
	 */
	protected HttpSession getSession(boolean flag)
	{
		return getRequest().getSession(flag);
	}
	/**
	 * 
	* @Title: getCurUser   
	* @Description:获取当前登录人信息
	* @return
	* @return UserInfoManager        
	* @author wangxinmin
	* @date 2014年6月10日 上午11:42:05 
	*
	 */
	protected UserInfoManager getCurUser()
	{
		//获取当前登陆人
        UserInfoManager UserInfoManager = (UserInfoManager)getHttpSession().getAttribute(Global.SESSION_USER);
        return UserInfoManager;
	}
	/**
	 * 
	* @Title: setCurUser   
	* @Description:存user session
	* @return
	*
	 */
	protected void setCurUser(UserInfoManager user)
	{
        getHttpSession().setAttribute(Global.SESSION_USER, user);
	}
	/**
	 * 
	* @Title: setCurUser   
	* @Description:存user session
	 * @return
	 *
	 */
	protected void setCurUser(UserInfoManager user,boolean bln)
	{
		getHttpSession(bln).setAttribute(Global.SESSION_USER, user);
	}
	/**
	 * 
	* @Title: getCurUserId   
	* @Description:获取当前登陆他人ID
	* @return
	* @return String        
	* @author wangxinmin
	* @date 2014年6月10日 上午11:42:18 
	*
	 */
	protected String getCurUserId()
	{
		//获取当前登陆人
		UserInfoManager UserInfoManager = getCurUser();
		
		return UserInfoManager.getUserId();
	}
	/**
	 * 
	 * @Title: getShopId
	 * @Description:获取当前登陆他人ID
	 * @return
	 * @return String        
	 * @author wangxinmin
	 * @date 2014年6月10日 上午11:42:18 
	 *
	 */
	protected String getShopId()
	{
		//获取当前登陆人
		UserInfoManager UserInfoManager = getCurUser();
		
		return UserInfoManager.getShopId();
	}

}
